home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
vol6n20.arc
/
INLINE.ARC
/
UNINLINE.DOC
< prev
next >
Wrap
Text File
|
1987-10-31
|
5KB
|
199 lines
October 6, 1986
UNINLINE--AN INLINE DISASSEMBLER
Version 1.0
OVERVIEW
UNINLINE.COM is a disassembler which accepts an 'object' file
consisting of Turbo Pascal (tm) Inline statements and produces an
assembly language source file. The source file may then be
modified and reassembled to Inline statements using INLINE.COM.
Figure 1 shows an Inline statement input file and Figure 2, the
resulting source code disassembly.
LOADING AND RUNNING UNINLINE
First create a COM file, UNINLINE.COM, by compiling UNINLINE.PAS
using the Turbo Pascal compiler. The files UNPARS.INC and
FLPT.INC are also required for compilation. The normal default
memory settings are suitable.
UNINLINE is called at the DOS prompt with two filename parameters
specifying the names of the object and source files. If no
extensions are given, .OBJ and .ASM are used by default. For
instance,
UNINLINE ABC DEF
will cause UNINLINE to look for an object file, ABC.OBJ, and
create a source file DEF.ASM. Files with no extension may be
input or created by using a simple '.' for the extension.
If the second filename is missing from the command line, an ASM
file will be created using the same name as the object file. If
neither filename is specified, then names will be requested once
execution starts.
Once execution begins, UNINLINE will run to completion with the
only console output being error messages.
OPERATION
1. UNINLINE should accept any syntax within an Inline statement
which is acceptable by Turbo Pascal. Disassembly starts
with the word 'Inline' and ends with the ending ')'.
Intervening Pascal comments are ignored. Thus it is
possible to digest an entire Pascal source file processing
only the Inline statements.
1
2. The source code instructions resulting from each Inline
statement are separated by the pseudo-instruction, NEW.
When reassembled using INLINE.COM, the NEW instruction
causes separate Inline statements to be generated.
3. Labels are inserted in the assembly language source code as
required. Labels consist of the letter, X, and a decimal
number which is the number of bytes from the start of the
disassembly. Labels are only inserted on those instructions
which are the destination of a jump or call.
(C) Copyright 1985,86 by L. David Baldwin.
UNINLINE may be copied and distributed freely providing that no
fee is charged and it is not part of a package for which a charge
is made.
Please report all bugs, suggestions, and problems to Dave
Baldwin, CompuServe ID #76327,53.
22 Fox Den Rd., (Summer) 144 13th St. East, (Winter)
Hollis, NH 03049 Tierra Verde, FL 33715
(603) 465-7857 (813) 867-3030
Turbo Pascal is a trademark of Borland International Inc.
2
Inline($FC/$8A/$46/<CH/$8B/$4E/<LIMIT/$09/$C9/$9C/$79/$03/$F7
/$D9/$FD/$89/$CA/$C4/$7E/<T/$F2/$AE/$75/$01/$41/$29/$CA/$9D
/$79/$02/$F7/$DA/$89/$56/$0C);
Figure 1: Inline Statement Input File
CLD
MOV AL,[BP+<CH]
MOV CX,[BP+<LIMIT]
OR CX,CX
PUSHF
JNS X15
NEG CX
STD
X15: MOV DX,CX
LES DI,[BP+<T]
REPNE
SCASB
JNZ X25
INC CX
X25: SUB DX,CX
POPF
JNS X32
NEG DX
X32: MOV [BP+$0C],DX
Figure 2: Disassembled Output File
3